package com.smart.modules.genealogy.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.smart.modules.genealogy.domain.GenealogyPerson;
import com.smart.modules.genealogy.dto.GenealogyPersonDto;
import com.smart.system.common.result.Result;

/**
 * 家谱人员Service接口
 */
public interface IGenealogyPersonService
{
    /**
     * 查询家谱人员
     *
     * @param genealogyPersonId 家谱人员主键
     * @return 家谱人员
     */
    public GenealogyPerson selectGenealogyPersonByGenealogyPersonId(Long genealogyPersonId);

    /**
     * 查询家谱人员列表
     *
     * @param genealogyPerson 家谱人员
     * @return 家谱人员集合
     */
    public IPage<GenealogyPerson> selectGenealogyPersonList(IPage<GenealogyPerson> page,GenealogyPerson genealogyPerson);

    /**
     * 新增家谱人员
     *
     * @param genealogyPerson 家谱人员
     * @return 结果
     */
    public int insertGenealogyPerson(GenealogyPersonDto genealogyPerson);

    /**
     * 修改家谱人员
     *
     * @param genealogyPerson 家谱人员
     * @return 结果
     */
    public int updateGenealogyPerson(GenealogyPerson genealogyPerson);

    /**
     * 批量删除家谱人员
     *
     * @param genealogyPersonIds 需要删除的家谱人员主键集合
     * @return 结果
     */
    public int deleteGenealogyPersonByGenealogyPersonIds(Long[] genealogyPersonIds);

    /**
     * 删除家谱人员信息
     *
     * @param genealogyPersonId 家谱人员主键
     * @return 结果
     */
    public int deleteGenealogyPersonByGenealogyPersonId(Long genealogyPersonId);

    /**
     * 构建族谱树
     * @param genealogyId
     * @return
     */
    Result buildGenealogyByGenealogyId(Long genealogyId);


}
